package org.jeecgframework.web.system.pojo.base;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * 
 * @ClassName：ZyEquipmentSpareEntity.java
 * @Description：设备以及备件信息
 * @author：LeiYoung
 * @version：V1.0
 * @Date：2016年10月9日 上午10:22:42
 */
@Entity
@Table(name = "zy_equipment_spare", schema = "")
@SuppressWarnings("serial")
public class ZyEquipmentSpareEntity implements java.io.Serializable {
	/** 主键 */
	private java.lang.String id;
	/** 序列号SN */
	@Excel(name = "序列号SN")
	private java.lang.String sn;
	/** item */
	@Excel(name = "item")
	private java.lang.String item;
	/** 备件所属设备SN */
	@Excel(name = "备件所属设备SN")
	private java.lang.String topItemSn;
	/** 商务合作对象编号BP号 */
	@Excel(name = "商务合作对象编号")
	private java.lang.String bpNo;
	/** 类别 型号 */
	@Excel(name = "机型")
	private ZyEquipmentTypeEntity type;
	/** 所属影院ID */
	@Excel(name = "所属影院ID")
	private ZyCinemaEntity zyCinema;
	/** 所属机构ID */
	@Excel(name = "所属机构ID")
	private TSDepart tsDepart;
	/** 放映厅 */
	@Excel(name = "放映厅")
	private ZyRoomEntity house;
	/** 安装日期 */
	@Excel(name = "安装日期")
	private java.util.Date installDate;
	/** 基本保修期 */
	@Excel(name = "基本保修期")
	private java.util.Date baseRepairDate;
	/** 发货日期 */
	@Excel(name = "发货日期")
	private java.util.Date sendDate;
	/** 保修截止日期 */
	@Excel(name = "保修截止日期")
	private java.util.Date repairEndDate;
	/** 服务状态 */
	@Excel(name = "服务状态")
	private java.lang.String serverState;
	/** 备注 */
	@Excel(name = "备注")
	private java.lang.String remarks;
	/** 是否异常 */
	@Excel(name = "是否异常")
	private String isNormal;
	/** 异常原因 */
	@Excel(name = "异常原因")
	private java.lang.String exceptionReason;
	/** 所在省市 */
	@Excel(name = "所在省市")
	private TSTerritory tsTerritory;
	/** 去年巡检日期 */
	@Excel(name = "去年巡检日期")
	private java.util.Date lastYearInspectionDate;
	/** 是否有巡检计划 */
	@Excel(name = "是否有巡检计划")
	private String isHadInspection;
	/** 激光改造 */
	@Excel(name = "激光改造")
	private String laserReconstruction;

	/** 激光改造 */
//	@Excel(name = "激光改造类型")
	private String laserReconstructionType;


	/** 是否已维护保期 **/
	@Excel(name = "是否已维护保期")
	private String isServicing;
	/** 是否是备件 **/
	@Excel(name = "是否是备件")
	private Boolean isSpare;
	/** 所有方式 **/
	@Excel(name = "所有方式")
	private String ownWay;
	/** 续保方 */
	private java.lang.String companyOfRenewal;
	/** 保修开始日期 */
	private java.util.Date warrantyBeginDate;
	/** 保修期 */
	private java.lang.Integer repairDate;
	/** 派单要求 */
	/** 处理中影导入续保,标识该设备巡检单位,保存为BP （机构ID）*/
	private TSDepart sendSign;
	/** 剩余巡检次数 */
	private java.lang.Integer residualIpCount;

    /*二维码*/
    private String qrCode;
	
	
	
	/** 创建人名称 */
	private java.lang.String createName;
	/** 创建人登录名称 */
	private java.lang.String createBy;
	/** 创建日期 */
	private java.util.Date createDate;
	/** 更新人名称 */
	private java.lang.String updateName;
	/** 更新人登录名称 */
	private java.lang.String updateBy;
	/** 更新日期 */
	private java.util.Date updateDate;
	/** ---------------------------------- */
	// 服务状态
	private String serverStateVal;
	// 省-市
	private String tsTerritoryVal;
	/*院线*/
	private String cinema;
	/*是否序列号追踪*/
	private String isSerialnumTrack;


	//只做显示用
	private String vcreateDate;/*版本更新时间*/
	private String v1; //放映机软件版本
	private String v2; //ICP/TI/ICMP软件版本


	@Transient
	public String getVcreateDate() {
		return vcreateDate;
	}

	public void setVcreateDate(String vcreateDate) {
		this.vcreateDate = vcreateDate;
	}
	@Transient
	public String getV1() {
		return v1;
	}

	public void setV1(String v1) {
		this.v1 = v1;
	}
	@Transient
	public String getV2() {
		return v2;
	}

	public void setV2(String v2) {
		this.v2 = v2;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name = "ID", nullable = false, length = 36)
	public java.lang.String getId() {
		return this.id;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 主键
	 */
	public void setId(java.lang.String id) {
		this.id = id;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 序列号SN
	 */
	@Column(name = "SN", nullable = true, length = 50)
	public java.lang.String getSn() {
		return this.sn;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 序列号SN
	 */
	public void setSn(java.lang.String sn) {
		this.sn = sn;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 备件
	 */
	@Column(name = "ITEM", nullable = true, length = 100)
	public java.lang.String getItem() {
		return this.item;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 备件
	 */
	public void setItem(java.lang.String item) {
		this.item = item;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 备件所属设备SN
	 */
	@Column(name = "TOP_ITEM_SN", nullable = true, length = 50)
	public java.lang.String getTopItemSn() {
		return this.topItemSn;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 备件所属设备SN
	 */
	public void setTopItemSn(java.lang.String topItemSn) {
		this.topItemSn = topItemSn;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 商务合作对象编号
	 */
	@Column(name = "BP_NO", nullable = true, length = 50)
	public java.lang.String getBpNo() {
		return this.bpNo;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 商务合作对象编号
	 */
	public void setBpNo(java.lang.String bpNo) {
		this.bpNo = bpNo;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 类别
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH)
	@JoinColumn(name = "TYPE")
	public ZyEquipmentTypeEntity getType() {
		return type;
	}

	public void setType(ZyEquipmentTypeEntity type) {
		this.type = type;
	}

	/**
	 * @return the zyCinema
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
	@JoinColumn(name = "BELONG_CINEMA_ID")
	public ZyCinemaEntity getZyCinema() {
		return zyCinema;
	}

	/**
	 * @param zyCinema
	 *            the zyCinema to set
	 */
	public void setZyCinema(ZyCinemaEntity zyCinema) {
		this.zyCinema = zyCinema;
	}

	/**
	 * @return the tsDepart
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH)
	@JoinColumn(name = "BELONG_ORG_ID")
	public TSDepart getTsDepart() {
		return tsDepart;
	}

	/**
	 * @param tsDepart
	 *            the tsDepart to set
	 */
	public void setTsDepart(TSDepart tsDepart) {
		this.tsDepart = tsDepart;
	}

	/**
	 * @return the tsTerritory
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
	@JoinColumn(name = "CITY_ID")
	public TSTerritory getTsTerritory() {
		return tsTerritory;
	}

	/**
	 * @param tsTerritory
	 *            the tsTerritory to set
	 */
	public void setTsTerritory(TSTerritory tsTerritory) {
		this.tsTerritory = tsTerritory;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 放映厅
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY,optional = false)
	@JoinColumn(name = "HOUSE")
	public ZyRoomEntity getHouse() {
		return this.house;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 放映厅
	 */
	public void setHouse(ZyRoomEntity house) {
		this.house = house;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 安装日期
	 */
	@Column(name = "INSTALL_DATE", nullable = true, length = 32)
	public java.util.Date getInstallDate() {
		return this.installDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 安装日期
	 */
	public void setInstallDate(java.util.Date installDate) {
		this.installDate = installDate;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 基本保修期
	 */
	@Column(name = "BASE_REPAIR_DATE", nullable = true, length = 32)
	public java.util.Date getBaseRepairDate() {
		return this.baseRepairDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 基本保修期
	 */
	public void setBaseRepairDate(java.util.Date baseRepairDate) {
		this.baseRepairDate = baseRepairDate;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 发货日期
	 */
	@Column(name = "SEND_DATE", nullable = true, length = 32)
	public java.util.Date getSendDate() {
		return this.sendDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 发货日期
	 */
	public void setSendDate(java.util.Date sendDate) {
		this.sendDate = sendDate;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 保修截止日期
	 */
	@Column(name = "REPAIR_END_DATE", nullable = true, length = 32)
	public java.util.Date getRepairEndDate() {
		return this.repairEndDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 保修截止日期
	 */
	public void setRepairEndDate(java.util.Date repairEndDate) {
		this.repairEndDate = repairEndDate;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 服务状态
	 */
	@Column(name = "SERVER_STATE", nullable = true, length = 32)
	public java.lang.String getServerState() {
		return this.serverState;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 服务状态
	 */
	public void setServerState(java.lang.String serverState) {
		this.serverState = serverState;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 备注
	 */
	@Column(name = "REMARKS", nullable = true, length = 500)
	public java.lang.String getRemarks() {
		return this.remarks;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 备注
	 */
	public void setRemarks(java.lang.String remarks) {
		this.remarks = remarks;
	}

	/**
	 * 方法: 取得String
	 * 
	 * @return: String 是否异常
	 */
	@Column(name = "IS_NORMAL", nullable = true, length = 1)
	public String getIsNormal() {
		return this.isNormal;
	}

	/**
	 * 方法: 设置String
	 * 
	 * @param: String 是否异常
	 */
	public void setIsNormal(String isNormal) {
		this.isNormal = isNormal;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 异常原因
	 */
	@Column(name = "EXCEPTION_REASON", nullable = true, length = 1000)
	public java.lang.String getExceptionReason() {
		return this.exceptionReason;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 异常原因
	 */
	public void setExceptionReason(java.lang.String exceptionReason) {
		this.exceptionReason = exceptionReason;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 所在省市
	 */
	/*
	 * @Column(name ="CITY_ID",nullable=true,length=36) public java.lang.String
	 * getCityId(){ return this.cityId; }
	 *//**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 所在省市
	 */
	/*
	 * public void setCityId(java.lang.String cityId){ this.cityId = cityId; }
	 */

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 去年巡检日期
	 */
	@Column(name = "LAST_YEAR_INSPECTION_DATE", nullable = true, length = 32)
	public java.util.Date getLastYearInspectionDate() {
		return this.lastYearInspectionDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 去年巡检日期
	 */
	public void setLastYearInspectionDate(java.util.Date lastYearInspectionDate) {
		this.lastYearInspectionDate = lastYearInspectionDate;
	}

	/**
	 * 方法: 取得String
	 * 
	 * @return: String 是否有巡检计划
	 */
	@Column(name = "IS_HAD_INSPECTION", nullable = true, length = 32)
	public String getIsHadInspection() {
		return this.isHadInspection;
	}

	/**
	 * 方法: 设置String
	 * 
	 * @param: String 是否有巡检计划
	 */
	public void setIsHadInspection(String isHadInspection) {
		this.isHadInspection = isHadInspection;
	}

	/**
	 * 方法: 取得String
	 * 
	 * @return: String 激光改造
	 */
	@Column(name = "LASER_RECONSTRUCTION", nullable = true, length = 32)
	public String getLaserReconstruction() {
		return this.laserReconstruction;
	}

	/**
	 * 方法: 设置String
	 * 
	 * @param: String 激光改造
	 */
	public void setLaserReconstruction(String laserReconstruction) {
		this.laserReconstruction = laserReconstruction;
	}

	/**
	 * 方法: 取得String
	 *
	 * @return: String 激光改造
	 */
	@Column(name = "LASER_RECONSTRUCTION_type", nullable = true, length = 32)
	public String getLaserReconstructionType() {
		return this.laserReconstructionType;
	}

	/**
	 * 方法: 设置String
	 *
	 * @param: String 激光改造
	 */
	public void setLaserReconstructionType(String laserReconstructionType) {
		this.laserReconstructionType = laserReconstructionType;
	}

	/**
	 * 方法: 取得String
	 * 
	 * @return: String 是否已维护保期
	 */
	@Column(name = "IS_SERVICING", nullable = true, length = 32)
	public String getIsServicing() {
		return isServicing;
	}

	/**
	 * 方法: 设置String
	 * 
	 * @param: String 是否已维护保期
	 */
	public void setIsServicing(String isServicing) {
		this.isServicing = isServicing;
	}

	/**
	 * 方法: 取得String
	 * 
	 * @return: String 所有方式
	 */
	@Column(name = "OWN_WAY", nullable = true, length = 32)
	public String getOwnWay() {
		return ownWay;
	}

	/**
	 * 方法: 设置String
	 * 
	 * @param: String 所有方式
	 */
	public void setOwnWay(String ownWay) {
		this.ownWay = ownWay;
	}

	/**
	 * 方法: 取得Boolean
	 * 
	 * @return: Boolean 是否是备件
	 */
	@Column(name = "IS_SPARE", nullable = true, length = 32)
	public Boolean getIsSpare() {
		return isSpare;
	}

	/**
	 * 方法: 设置Boolean
	 * 
	 * @param: Boolean 是否已维护保期
	 */
	public void setIsSpare(Boolean isSpare) {
		this.isSpare = isSpare;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 创建人名称
	 */
	@Column(name = "CREATE_NAME", nullable = true, length = 50)
	public java.lang.String getCreateName() {
		return this.createName;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 创建人名称
	 */
	public void setCreateName(java.lang.String createName) {
		this.createName = createName;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 创建人登录名称
	 */
	@Column(name = "CREATE_BY", nullable = true, length = 50)
	public java.lang.String getCreateBy() {
		return this.createBy;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 创建人登录名称
	 */
	public void setCreateBy(java.lang.String createBy) {
		this.createBy = createBy;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 创建日期
	 */
	@Column(name = "CREATE_DATE", nullable = true, length = 20)
	public java.util.Date getCreateDate() {
		return this.createDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 创建日期
	 */
	public void setCreateDate(java.util.Date createDate) {
		this.createDate = createDate;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 更新人名称
	 */
	@Column(name = "UPDATE_NAME", nullable = true, length = 50)
	public java.lang.String getUpdateName() {
		return this.updateName;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 更新人名称
	 */
	public void setUpdateName(java.lang.String updateName) {
		this.updateName = updateName;
	}

	/**
	 * 方法: 取得java.lang.String
	 * 
	 * @return: java.lang.String 更新人登录名称
	 */
	@Column(name = "UPDATE_BY", nullable = true, length = 50)
	public java.lang.String getUpdateBy() {
		return this.updateBy;
	}

	/**
	 * 方法: 设置java.lang.String
	 * 
	 * @param: java.lang.String 更新人登录名称
	 */
	public void setUpdateBy(java.lang.String updateBy) {
		this.updateBy = updateBy;
	}

	/**
	 * 方法: 取得java.util.Date
	 * 
	 * @return: java.util.Date 更新日期
	 */
	@Column(name = "UPDATE_DATE", nullable = true, length = 20)
	public java.util.Date getUpdateDate() {
		return this.updateDate;
	}

	/**
	 * 方法: 设置java.util.Date
	 * 
	 * @param: java.util.Date 更新日期
	 */
	public void setUpdateDate(java.util.Date updateDate) {
		this.updateDate = updateDate;
	}

	/**
	 * @return 续保方
	 */
	@Column(name = "company_of_renewal", nullable = true, length = 36)
	public java.lang.String getCompanyOfRenewal() {
		return companyOfRenewal;
	}

	/**
	 * @param 续保方
	 */
	public void setCompanyOfRenewal(java.lang.String companyOfRenewal) {
		this.companyOfRenewal = companyOfRenewal;
	}

	/**
	 * @return 保修开始日期
	 */
	@Column(name = "warranty_begin_date", nullable = true, length = 36)
	public java.util.Date getWarrantyBeginDate() {
		return warrantyBeginDate;
	}

	/**
	 * @param 保修开始日期
	 */
	public void setWarrantyBeginDate(java.util.Date warrantyBeginDate) {
		this.warrantyBeginDate = warrantyBeginDate;
	}

	/**
	 * @return 保修期
	 */
	@Column(name = "repair_date", nullable = true, length = 6)
	public java.lang.Integer getRepairDate() {
		return repairDate;
	}

	public void setRepairDate(java.lang.Integer repairDate) {
		this.repairDate = repairDate;
	}

	/**
	 * @return 获取 派单要求(巡检机构)
	 */
	@JsonIgnore
	@ManyToOne(cascade = CascadeType.DETACH, fetch = FetchType.LAZY)
	@JoinColumn(name = "send_sign")
	public TSDepart getSendSign() {
		return sendSign;
	}

	/**
	 * @param 设置 派单要求(巡检机构)
	 */
	public void setSendSign(TSDepart sendSign) {
		this.sendSign = sendSign;
	}
	
	/**
	 * @return 获取 剩余巡检次数
	 */
	@Column(name = "residual_ip_count")
	public java.lang.Integer getResidualIpCount() {
		return residualIpCount;
	}
	
	/**
	 * @param 设置
	 *            剩余巡检次数
	 */
	public void setResidualIpCount(java.lang.Integer residualIpCount) {
		this.residualIpCount = residualIpCount;
	}

	/** ----------------@Transient--------------- */
	@Transient
	public String getServerStateVal() {
		return serverStateVal;
	}

	public void setServerStateVal(String serverStateVal) {
		this.serverStateVal = serverStateVal;
	}

	@Transient
	public String getTsTerritoryVal() {
		return tsTerritoryVal;
	}

	public void setTsTerritoryVal(String tsTerritoryVal) {
		this.tsTerritoryVal = tsTerritoryVal;
	}

	@Column(name = "qr_code")
	public String getQrCode() {
		return qrCode;
	}

	public void setQrCode(String qrCode) {
		this.qrCode = qrCode;
	}

	@Column(name = "cinema")
	public String getCinema() {
		return cinema;
	}

	public void setCinema(String cinema) {
		this.cinema = cinema;
	}

	@Column(name = "is_serialnum_track")
	public String getIsSerialnumTrack() {
		return isSerialnumTrack;
	}

	public void setIsSerialnumTrack(String isSerialnumTrack) {
		this.isSerialnumTrack = isSerialnumTrack;
	}
}
